#ifndef STACK_H
#define STACK_H

#include "Effects/RGBEffect.h"

class Stack : public RGBEffect
{

public:
    Stack();
    ~Stack();

    static std::string const ClassName() {return "Stack";}
    //void DefineExtraOptions(QLayout*) override;
    void StepEffect(ControllerZone* const controller_zone) override;
    void OnControllerZonesListChanged(ControllerZone* const controller_zone) override;

//private slots:
//    void on_direction_currentIndexChanged(int);

private:

    bool reset = false;

    std::vector<unsigned int> stops;
    std::vector<float> progress;
    std::vector<std::vector<RGBColor>> current_colors;
    std::vector<RGBColor> zone_colors;

    RGBColor GetColor(unsigned int, unsigned int);
    void ResetZone(unsigned int, ControllerZone*);
};

#endif // STACK_H
